package com.sss.hloster06;

import java.util.Scanner;

public class JavaExercise04 {

	public static void main(String[] args) {
		test04();
	}

	/**
	 * 将一个正整数分解质因数。例如：输入90,打印出90=2*3*3*5
	 * 对n进行分解质因数，应先找到一个最小的质数k，然后按下述步骤完成：   
(1)如果这个质数恰等于n，则说明分解质因数的过程已经结束，打印出即可。   
(2)如果n <> k，但n能被k整除，则应打印出k的值，并用n除以k的商,作为新的正整数你n,重复执行第一步。   
(3)如果n不能被k整除，则用k+1作为k的值,重复执行第一步

	 * 
	 */
	private static void test04() {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入需要分解的正整数：");
		int n = sc.nextInt();
       if(isPrime(n)) {
    	   System.out.print(n);
       }else {
    	   System.out.print(n+"=");
             factor(n);       
       }
	}
	public static boolean isPrime(int num) {//判断输入的数是否为质素
		boolean isPrime=true;
		for(int i=2;i<num;i++) {
			if(num%i ==0) {
				isPrime=false;
				break;
			}
		}
		return isPrime;
	}
	public static void factor(int num) {//
		for(int i=2;i<num;i++) {
			if(num%i==0) {
				System.out.print(i+"*");
				if(isPrime(num/i)) {
					System.out.print(num/i);
				}else {
					factor(num/i);
				}
				return;//记得结束方法，不然会一直运行下去
			}
		}
	}
}
